<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('replace_in_file')) {
  function replace_in_file($path_to_file,$old_str,$new_str) {

    // read file and replace ocurrences
    $file = read_file($path_to_file);
    $file = str_replace($old_str, $new_str, $file);

    // overwrite file and set-up permisions
    write_file($path_to_file, $file,"w");
    chmod($path_to_file, 0777);
  }
}


// ------------------------------------------------------------------------

/*
 * ------------ lixlpixel recursive PHP functions -------------
 * recursive_remove_directory( directory to delete, empty )
 * expects path to directory and optional TRUE / FALSE to empty
 * of course PHP has to have the rights to delete the directory
 * you specify and all files and folders inside the directory
 * ------------------------------------------------------------
 *
 * to use this function to totally remove a directory, write:
 * recursive_remove_directory('path/to/directory/to/delete');
 *
 * to use this function to empty a directory, write:
 * recursive_remove_directory('path/to/full_directory',TRUE);
 */
if ( ! function_exists('recursive_remove_directory')) {
  function recursive_remove_directory($directory, $empty=FALSE)
  {
    // if the path has a slash at the end we remove it here
    if(substr($directory,-1) == '/')
    {
      $directory = substr($directory,0,-1);
    }

    // if the path is not valid or is not a directory ...
    if(!file_exists($directory) || !is_dir($directory))
    {
      // ... we return false and exit the function
      return FALSE;

    // ... if the path is not readable
    }elseif(!is_readable($directory))
    {
      // ... we return false and exit the function
      return FALSE;

    // ... else if the path is readable
    }else{

      // we open the directory
      $handle = opendir($directory);

      // and scan through the items inside
      while (FALSE !== ($item = readdir($handle)))
      {
        // if the filepointer is not the current directory
        // or the parent directory
        if($item != '.' && $item != '..')
        {
          // we build the new path to delete
          $path = $directory.'/'.$item;

          // if the new path is a directory
          if(is_dir($path))
          {
            // we call this function with the new path
            recursive_remove_directory($path);

          // if the new path is a file
          }else{
            // we remove the file
            unlink($path);
          }
        }
      }
      // close the directory
      closedir($handle);

      // if the option to empty is not set to true
      if($empty == FALSE)
      {
        // try to delete the now empty directory
        if(!rmdir($directory))
        {
          // return false if not possible
          return FALSE;
        }
      }
      // return success
      return TRUE;
    }
  }
} // if ( ! function_exists('recursive_remove_directory'))

// ------------------------------------------------------------

/* End of file file_helper.php */
/* Location: ./system/application/helpers/file_helper.php */